/**
 * 简单的加密解密工具
 * 用于Remember me功能的密码存储
 */

// 简单的异或加密密钥
const SECRET_KEY = '1735660800000'

/**
 * 加密字符串
 * @param {string} text 需要加密的文本
 * @returns {string} 加密后的Base64字符串
 */
export function encrypt(text) {
  if (!text) return ''
  
  try {
    let encrypted = ''
    for (let i = 0; i < text.length; i++) {
      const textChar = text.charCodeAt(i)
      const keyChar = SECRET_KEY.charCodeAt(i % SECRET_KEY.length)
      encrypted += String.fromCharCode(textChar ^ keyChar)
    }
    // 转换为Base64编码
    return btoa(unescape(encodeURIComponent(encrypted)))
  } catch (error) {
    console.error('加密失败:', error)
    return ''
  }
}

/**
 * 解密字符串
 * @param {string} encryptedText Base64编码的加密文本
 * @returns {string} 解密后的原文
 */
export function decrypt(encryptedText) {
  if (!encryptedText) return ''
  
  try {
    // 从Base64解码
    const encrypted = decodeURIComponent(escape(atob(encryptedText)))
    let decrypted = ''
    for (let i = 0; i < encrypted.length; i++) {
      const encryptedChar = encrypted.charCodeAt(i)
      const keyChar = SECRET_KEY.charCodeAt(i % SECRET_KEY.length)
      decrypted += String.fromCharCode(encryptedChar ^ keyChar)
    }
    return decrypted
  } catch (error) {
    console.error('解密失败:', error)
    return ''
  }
}

/**
 * 验证加密的密码是否与原密码匹配
 * @param {string} inputPassword 用户输入的密码
 * @param {string} storedEncryptedPassword 存储的加密密码
 * @returns {boolean} 是否匹配
 */
export function verifyPassword(inputPassword, storedEncryptedPassword) {
  if (!inputPassword || !storedEncryptedPassword) return false
  
  try {
    const decryptedPassword = decrypt(storedEncryptedPassword)
    return inputPassword === decryptedPassword
  } catch (error) {
    console.error('密码验证失败:', error)
    return false
  }
} 